Country Age Salary Purchased
France 44 72000 No
Spain 27 48000 Yes
Germany 30 54000 No
Spain 38 61000 No
Germany 40 Yes
France 35 58000 Yes
Spain 52000 No
France 48 79000 Yes
Germany 50 83000 No
France 37 67000 Yes
這是一個簡單的Data.csv
在機器學習中,我們常需要一份結構化的資料來訓練模型。以 Data.csv 為例,它包含四個欄位:Country(國家)、Age(年齡)、Salary(薪水)、以及 Purchased(是否購買)。這份資料能幫助我們觀察顧客的基本屬性,並學習如何預測「一個顧客會不會購買產品」。
在這裡,前面三個欄位 Country、Age、Salary 稱為 輸入特徵 (features)。它們是我們拿來當作依據的資訊,相當於「考試題目」。而最後一欄 Purchased 則是 標籤 (label),代表真正的答案。模型的任務就是從題目(特徵)中找出規律,學會預測答案(標籤)。
為了讓程式知道該怎麼切分資料,我們常使用 Pandas 的 iloc 來選取欄位。X = df.iloc[:, :-1].values 代表「取出除了最後一欄以外的所有欄位」,也就是把所有輸入特徵放在變數 X 裡。接著,y = df.iloc[:, -1].values 則是「取出最後一欄」,把標籤放到 y。
這樣的寫法幾乎是所有機器學習專案的標準起點。原因很簡單:大部分的資料表都會把「答案」放在最後一欄,而把用來預測的資料放在前面。透過這種方式,我們能快速建立 X 與 y,並進一步進行資料清理、特徵編碼、模型訓練與評估。
總結來說,特徵 (features) 是題目,標籤 (label) 是答案,而 iloc 的切分方法就是把題目和答案分開,讓模型能專心學習如何解題。
今天的程式碼
## Importing the libraries
"""
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
"""## Importing the dataset"""
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values
print(X)
print(y)